import type { FormRules } from 'element-plus'

/** 密码正则(密码格式应为8-18位数字、字母、符号的任意两种组合) */
export const REGEXP_PWD =
  /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)]|[()])+$)(?!^.*[\u4E00-\u9FA5].*$)([^(0-9a-zA-Z)]|[()]|[a-z]|[A-Z]|[0-9]){8,18}$/

export const REGEXP_USERNAME = /^[a-zA-Z0-9_-]{4,16}$/

/** 登录校验 */
const loginRules = reactive(<FormRules>{
  username: [
    {
      validator: (rule, value, callback) => {
        if (value === '') {
          callback(new Error('用户名不为空'))
        } else if (!REGEXP_USERNAME.test(value)) {
          callback(new Error('用户名应为4到16位(字母，数字，下划线，减号)'))
        } else {
          callback()
        }
      }
    }
  ],
  password: [
    {
      validator: (rule, value, callback) => {
        if (value === '') {
          callback(new Error('密码不为空'))
        } else if (!REGEXP_PWD.test(value)) {
          callback(new Error('密码格式应为8-18位数字、字母、符号的任意两种组合'))
        } else {
          callback()
        }
      },
      trigger: 'blur'
    }
  ]
})
export { loginRules }
